// 处理邮箱的请求
const router = require('express').Router();
// 导入处理邮箱的模块
const emailApi = require('../email/emailApi');

// 访问的完整地址为：http://localhost:3000/api/email/send
// 发送QQ邮箱验证码的接口
// URL:  /api/email/send
// 请求方式：GET
// 参数：email
router.get('/send', async (req, res) => {
    // 接收qq邮箱
    let { email } = req.query;
    // 调用api把验证码发送到邮箱
    await emailApi.sendEmailVerification(email)
        .then(
            (data) => {
                // 发送邮箱验证码成功
                res.send(data)
            },
            error => {
                // 发送邮箱验证码失败
                res.send({
                    code: -1,
                    msg: '发送验证码失败。1111',
                    error
                })
            }
        )
})


router.post('/send', async (req, res) => {
    // 接收qq邮箱
    let { email } = req.body;
    // 调用api把验证码发送到邮箱
    await emailApi.sendEmailVerification(email)
        .then(
            (data) => {
                // 发送邮箱验证码成功
                res.send(data)
            },
            error => {
                // 发送邮箱验证码失败
                res.send({
                    code: -1,
                    msg: '发送验证码失败。1111',
                    error
                })
            }
        )
})


// 访问的完整地址为：http://localhost:3000/api/email/verify
// 验证QQ邮箱和验证码的接口
// URL:  /api/email/verify
// 请求方式：GET
// 参数：email,captcha
router.get('/verify', async (req, res) => {
    // 接收qq邮箱
    let { email, captcha } = req.query;
    // 调用api把验证码发送到邮箱
    await emailApi.verifyEmailCode(email, captcha)
        .then(
            (data) => {
                // 发送邮箱验证码成功
                res.send(data)
                if (data.code == 200) {
                    // 删除验证码
                    emailApi.removeEmailCode(email, captcha);
                }
            },
            error => {
                // 发送邮箱验证码失败
                res.send(error)
            }
        )
})


router.post('/verify', async (req, res) => {
    // 接收qq邮箱
    let { email, captcha } = req.body;
    // 调用api把验证码发送到邮箱
    await emailApi.verifyEmailCode(email, captcha)
        .then(
            (data) => {
                // 发送邮箱验证码成功
                res.send(data)
                if (data.code == 200) {
                    // 删除验证码
                    emailApi.removeEmailCode(email, captcha);
                }
            },
            error => {
                // 发送邮箱验证码失败
                res.send(error)
            }
        )
})



// 暴露
module.exports = router;